export { };
// 类；

class Person {
  public name: string;
  public age: number;
  public sex: boolean;

  private money: number = 10000000;

  constructor(name: string, age: number, sex: boolean) {
    this.name = name;
    this.age = age;
    this.sex = sex;
    // this.money = this.money; // 10000000 构造器里面可以访问私有的属性
  }

  private eat() {
    console.log('private，私有的方法');
  }

  say() {
    this.eat(); // private修饰符，表示这个方法或属性，只能再class内部被使用。 函数中可以访问私有的属性。
    console.log(`output->money`, this.money)// 如果实例化对象没有money属性，就是使用私有的money 10000000

  }
}


let p = new Person('张三', 15, true)
// p.eat(); // 属性“eat”为私有属性，只能在类“Person”中访问 实例化对象，不能访问私有的属性和方法
p.say();


// Person.eat();

class Student extends Person {
  constructor(name: string, age: number, sex: boolean) {
    super(name, age, sex)
  }
  drink() {
    // this.eat() // 属性“eat”为私有属性，只能在类“Person”中访问。子类里面，不能访问私有的属性和方法
  }
}